package javaIO;

import java.io.File;

public class MakeDirectories {
    private static void usage(){
        System.err.println(
                "Usage:MakeDirectories path1...\n" +
                        "Creates each path\n" +
                        "Usage:MakeDirectories -d path1 ...\n" +
                        "Deletes each path\n" +
                        "Usage:MakeDirectories -r path1 path2\n" +
                        "Renames from path1 to path2");
        System.exit(1);
    }

    private static void fillData(File f){
        System.out.println(
                "Absolute path: "+f.getAbsolutePath() +
                        "\n Can read:"+f.canRead() +
                        "Can write:" + f.canWrite() +
                        "getName:" + f.getName() +
                        "getParent:"+f.getParent() +
                        "getPath:"+f.getPath() +
                        "lenth:"+f.length()+
                        "lastModified"+f.lastModified());
        if (f.isFile())
            System.out.println("It is a file");
        else if (f.isDirectory())
            System.out.println("It is a Directory");
    }

    public static void main(String[] args){
        if (args.length < 1) usage();
        if (args[0].equals("-r")) {
            if (args.length != 3) usage();
            File old = new File(args[1]),rname = new File(args[2]);
            old.renameTo(rname);
            fillData(old);
            fillData(rname);
            return;
        }
        int count = 0;
        boolean del = false;
        if (args[0].equals("-d")) {
            count++;
            del = true;
        }
        count --;
        while (++count < args.length){
            File f = new File(args[count]);
            if (f.exists()){
                System.out.println(f+" exists");
                if (del){
                    System.out.println("deleting..."+f);
                    f.delete();
                }
            }
            else{
                if (!del){
                    f.mkdirs();
                    System.out.println("created "+f);
                }
            }
            fillData(f);
        }
    }
}
